home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagd_f.zip / ENCRYPT.SWG / 0006_ENCRYPT3.PAS.pas < prev    next >
Pascal/Delphi Source File  |  1993-05-28  |  1KB  |  48 lines

  1. { JL> I'm writing a Program to set and test passWords. I imagine you saw it in
  2.  JL> PASCAL echo. Well, I want to know if there is an easier way to encrypt a
  3.  JL> File then to assign a different Character to each letter. This is the
  4.  JL> only way that I can think of to do this.
  5.  
  6.  JL> 'A':= '^';
  7.  JL> 'B':= 'q';
  8.  
  9. What you suggest isn't so much encryption as it is a substitution cypher.  The
  10. following is more of an *encryption*:
  11. }
  12.  
  13. Function Crypt(S : String) : String;
  14. (* xor can be used to *toggle* values.  In this Case it is toggling  *)
  15. (* Character of the String based on its postion in the String.  This *)
  16. (* ensures that the mask is always known For the pupose of decoding. *)
  17.   Var
  18.     i : Byte;
  19.   begin
  20.     For i := 1 to Length(S) Do
  21.       S[i] := Char(ord(S[i]) xor i);
  22.     Crypt := S;
  23.   end;
  24.  
  25. Var
  26.   TestS : String;
  27.   TestMask : Byte;
  28.  
  29. begin
  30.   TestS := 'This is a test 1234567890 !@$%';
  31.   Write('original: ');
  32.   Writeln(TestS);
  33.  
  34.   TestS := Crypt(TestS);
  35.   Write('Encrypt : ');
  36.   Writeln(TestS);
  37.  
  38.   TestS := Crypt(TestS);
  39.   Write('Decrypt : ');
  40.   Writeln(TestS);
  41. end.
  42.  
  43. {Please note that this was a quickie and not fully tested and thereFore
  44. cannot be guaranteed to be perfect.  <grin>  But it ought to give you a
  45. slightly different perspective and help you see alternate approaches to
  46. the problem.
  47. }
  48.